Automation technology that is used for process and factory automation or for controlling machinery employs control systems that include one or more distributed control devices, such as a programmable logic controller (PLC), and an application-specific control program. In many cases, the control program is created in a programming language in compliance with the IEC 61131 standard that can be embedded into a computer-assisted development system, for example, which allows the control program for a control system to be created and also for individual program components, such as functions or function blocks, to be created, which can be allocated to one or more of the distributed control devices, for example. For this purpose, an associated programming model is established in terms of how the program components are instantiated and processed. A program that, initially, is created in a platform-independent manner can generally run on different types of hardware, wherein the respective hardware type must have been established before the program is compiled and uploaded.
In the enhanced IEC 61499 standard, the function blocks having interfaces for input and output data (I/O interfaces) known from IEC 61131 are additionally expanded by event interfaces. These event interfaces allow different function blocks to be linked, the respective processing of which can be prompted by an event, which can have been triggered by a different program component within and/or outside of a particular control device. The programming model according to the IEC 61499 standard thus, in principle, allows individual program components within a control system, which are allocated to different control devices, to be linked. A data exchange between the distributed control devices in a control system can take place via a data network, for example via an automation bus system, such as PROFINET. The necessary links between the event interfaces can take place in a control system having a number of distributed control devices by way of a protocol-based data exchange.
However, when an application-specific control program for a control system is created, it must be established which of the program component is to be executed on which of the control device that is distributed in the system. In control systems having distributed control devices, in general this means that there is a fixed assignment between the created program components and the hardware devices.
When control systems are used, the hardware type of a control device is selected from different performance classes based on the task to be processed. The program components are allocated appropriately to the individual control devices during the development of a control program for a control system, wherein the programmer during the distribution must ensure that the available hardware resources of a control device are sufficient for the resource requirements of a respective assigned program component. The physical distribution of the hardware is also reflected in the structure of the entire program of the control system, which is to say in particular with respect to the manually predetermined allocation of the individual program components to the control devices.
Such control systems that are compiled and programmed in an application-specific manner are generally difficult to expand, so that the corresponding control devices generally must be replaced by more powerful ones during a subsequent expansion of a plant or a machine. It is true that future expansions of a plant or of a machine can be considered in the concept design of a control system and in the selection of the appropriate hardware, so that optionally a later replacement of hardware on the control devices can be avoided and merely an adaptation of the control program is necessary. However, the use of an overdesigned control device, which is to say the use of a control device that is too powerful for a particular application, generally conflicts with the cost-efficiency rule.
While generally there is the option of expanding the hardware resources of the entire system, for example by adding a further control device, in control systems that are composed of multiple control devices within a shared data network, effective programming of the system necessitates a reallocation of the existing program components as well as those that were newly added to the available control devices. The reallocation of all program components as well as the establishment of the communication relationships thereof are performed manually by a programmer, so that each expansion basically necessitates a new development of the control program of a control system that already exists.